Skip to content

Many changes#58

Merged
jniestroy merged 21 commits into
mainfrom
fable
Jun 23, 2026
Merged

Many changes#58
jniestroy merged 21 commits into
mainfrom
fable

Conversation

@jniestroy

Copy link
Copy Markdown
Member

New fairscape interpret command

Added fairscape_graph_tools as dep. Handles evidence graph and some interpretation code.

Added fairscape import manifest command. Builds an RO-Crate from a CSV manifest (name, description, contentUrl,
hashes, size, version, keywords, group, etc.) via a new manifest_connector.

Evidence graph HTML rewritten. Moved from a 1,000-line Python f-string to a Jinja template.

Datasheet visual redesign.

v2 AI-ready scoring.

Summary statistics. New entailments/summary_stats.py for server-like summary stats.

PhysioNet importer fixes and dataset-group support.

Tests

jniestroy and others added 21 commits April 20, 2026 20:18
Phase 2 prep: CLI consumes the shared port-and-adapter pipeline from
fairscape_interpret/. pydantic-ai and httpx were transitively available
already but are now declared explicitly since the CLI will import them
directly through the pipeline adapters.
Indexes primary + reference RO-Crates via ReadROCrateMetadata into a
single id-keyed map and serves the three GraphSource port methods
against it. BFS in build_full_graph follows any reference that
resolves in the merged index, not just ark:-prefixed ones, because
local crates may use bare @ids.

crate_dir_for is a CLI-local affordance (not on the port) so the
SoftwareFetcher can resolve contentUrl paths against the owning crate.
persist_aeg always writes the serialized AnnotatedEvidenceGraph to
output_path. persist_condensed writes the condensed crate only when
--save-condensed was supplied; otherwise it keeps the metadata in
memory for diagnostics (last_condensed_metadata / last_stats) and
returns the condensed id without touching disk.

Source RO-Crate is never modified -- no AppendCrate calls, no
back-pointer injection.
Mirrors the server's asyncCollection task-document shape in process
memory, emits concise progress lines to stdout on step transitions
and per-computation completion, and appends raw LLM responses to a
JSONL trace file when --debug-llm is set.

Tracker calls never raise: observability is a best-effort side
channel, never the reason a pipeline fails.
Resolution order: (1) contentUrl as a file:///<crate-relative-path>
URI resolved against the owning crate directory, (2) GitHub via the
shared prefetch_software_code helper when the URL is an actual HTTP
URL, (3) a "[source not fetched]" placeholder so annotation continues
rather than the run dying on a missing source file.

file:/// URIs are the canonical shape FAIRSCAPE crates use for local
artifacts -- the path after the third slash is crate-relative, not
filesystem-absolute. A bare relative path is also accepted.

prefetch_software_code already returns bracketed placeholders for
non-GitHub or unfetchable URLs; we detect and drop those in favor of
the CLI's own placeholder so the signal stays uniform.
Wires the four local adapters into Condenser + Interpreter and runs
the pipeline against a user-supplied RO-Crate path. --reference is
repeatable and merges additional crates into the graph index for
cross-crate ARK resolution. Default output is
./<rocrate-name>-interpretation.json; --save-condensed and --debug-llm
opt into the condensed-crate sidecar and the JSONL LLM trace.
Adds the interpret_group from fairscape_cli.interpret.command alongside
the other top-level groups (rocrate, import, build, publish, schema,
augment, track). Users can now run `fairscape interpret run <path>`.
pyproject dep + uv.sources path and all import sites under commands/
and interpret/ updated to the renamed package. Behavior unchanged.

See fairscape_graph_tools/EVIDENCE_GRAPH_MIGRATION.md for the coordinated
rename across mds_python, fairscape-cli, and the shared package.
@jniestroy
jniestroy merged commit 811633b into main Jun 23, 2026
@jniestroy
jniestroy deleted the fable branch June 23, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant